.TH "yum.conf" "5" "" "Seth Vidal" "yum configuration file"
.SH "NAME"
.LP 
\fByum.conf\fR \- Configuration file for \fByum(8)\fR.
.SH "DESCRIPTION"
.LP
Yum uses a configuration file at \fB/etc/yum/yum.conf\fR.
.LP
Additional configuration files are also read from the directories set by the
\fBreposdir\fR option (default is `/etc/yum/repos.d').
See the \fBreposdir\fR option below for further details.

.SH "PARAMETERS"
.LP 
There are two types of sections in the yum configuration file(s): main and
repository. Main defines all global configuration options. There should be only
one main section. The repository section(s) define the configuration for each
repository/server. There should be one or more repository sections.

.SH "[main] OPTIONS"
.LP 
The [main] section must exist for yum to do anything. It consists of the
following options:

.IP
\fBcachedir\fR
Directory where yum should store its cache and db files. The default is
`/var/cache/yum'.

.IP
\fBcashe_root_dir\fR
Directory where yum would initialize the cashe, should almost certainly be left
at the default. The default is`/var/cache/CAShe'. Note that unlike all other
configuration, this does not change with installroot, the reason is so that
multiple install root can share the same data. See man cashe for more info.

.IP
\fBpersistdir\fR
Directory where yum should store information that should persist over multiple
runs. The default is `/var/lib/yum'.

.IP
\fBkeepcache\fR
Either `1' or `0'. Determines whether or not yum keeps the cache
of headers and packages after successful installation.  Default is '1'
(keep files)
.br

.IP
\fBusercache\fR
Either `1' or `0'. Determines whether or not yum should store per-user cache in
$TMPDIR.
When set to `0', then whenever yum runs as a non\-root user,
\fB\-\-cacheonly\fR is implied and system cache is used directly, and no new
user cache is created in $TMPDIR.
This can be used to prevent $TMPDIR from filling up if many users on the system
often use yum and root tends to have up-to-date metadata that the users can
rely on (they can still enable this feature with \fB\-\-setopt\fR if they
wish).
Default is `1' (user cache enabled).

.IP
\fBreposdir\fR
A list of directories where yum should look for .repo files which define
repositories to use. Default is `/etc/yum/repos.d'. Each
file in this directory should contain one or more repository sections as
documented in \fB[repository] options\fR below. These will be merged with the
repositories defined in /etc/yum/yum.conf to form the complete set of
repositories that yum will use.

.IP
\fBdebuglevel\fR
Debug message output level. Practical range is 0\-10. Default is `2'.

.IP
\fBerrorlevel\fR
Error message output level. Practical range is 0\-10. Default is `2'.

.IP
\fBrpmverbosity\fR
Debug scriptlet output level. 'info' is the default, other
options are: 'critical', 'emergency', 'error', 'warn' and 'debug'.

.IP
\fBprotected_packages\fR
This is a list of packages that yum should never completely remove. They are
protected via Obsoletes as well as user/plugin removals.

The default is: yum glob:/etc/yum/protected.d/*.conf
So any packages which should be protected can do so by including a file in 
/etc/yum/protected.d with their package name in it.

Also if this configuration is set to anything, then yum will protect the
package corresponding to the running version of the kernel.

.IP
\fBprotected_multilib\fR
Either `1' or `0'. This tells yum whether or not it should perform a check to
make sure that multilib packages are the same version. For example, if this
option is off (rpm behavior) then in some cases it might be possible for
pkgA-1.x86_64 and pkgA-2.i386 to be installed at the same time. However this
is very rarely desired. Install only packages, like the kernel, are exempt
from this check.
The default is `1'.

.IP
\fBlogfile\fR
Full directory and file name for where yum should write its log file.

.IP
\fBgpgcheck\fR
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on packages. When this is set in the [main] section it sets the
default for all repositories. 
The default is `0'.

\fBlocalpkg_gpgcheck\fR
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on local packages (packages in a file, not in a repositoy).
The default is `0'.

.IP
\fBrepo_gpgcheck\fR
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on the repodata. When this is set in the [main] section it sets the
default for all repositories. The default is `0'.

.IP
\fBskip_broken\fR
Either `1' or `0'. Resolve depsolve problems by removing packages that
are causing problems from the transaction.

.IP
\fBassumeyes\fR
Either `1' or `0'. Determines whether or not yum prompts for confirmation of
critical actions. Default is `0' (do prompt).
.br
Command-line option: \fB\-y\fP \fB\--assumeyes\fP

.IP
\fBassumeno\fR
Either `1' or `0'. If yum would prompt for confirmation of critical actions, 
assume the user chose no. This is basically the same as doing "echo | yum ..."
but is a bit more usable. This option overrides \fBassumeyes\fP, but is still
subject to \fBalwaysprompt\fP.
Default is `0' (do prompt).
.br
Command-line option: \fB\--assumeno\fP

.IP
\fBalwaysprompt\fR
Either `1' or `0'. When set to `0', yum will not prompt for confirmation
when the list of packages to be installed exactly matches those given on the
command line. Unless \fBassumeyes\fR is enabled, it will prompt when
additional packages need to be installed to fulfill dependencies
regardless of this setting. Note that
older versions of yum would also always prompt for package removal, and that is
no longer true.
Default is `1'.
.br

.IP
\fBtolerant\fR
Either `1' or `0'. If enabled, yum will go slower, checking for things that
shouldn't be possible making it more tolerant of external errors.
Default to `0' (not tolerant).
.br
Command-line option: \fB\-t\fP

.IP
\fBexclude\fR
List of packages to exclude from all repositories, so yum works
as if that package was never in the repositories. This should be a space
separated list.
This is commonly used so a package isn't upgraded or installed accidentally, but
can be used to remove packages in any way that "yum list" will show packages.
Shell globs using wildcards (eg. * and ?) are allowed.

Can be disabled using disable_excludes or --disableexcludes.
Command-line option: \fB\-x\fP

.IP
\fBdisable_excludes\fR
A way to permanently set the --disableexcludes command line option.

.IP
\fBquery_install_excludes\fR
This applies the command line exclude option (only, not the configuration
exclude above) to installed packages being shown in some query commands
(currently: list/info/search/provides). Default is '0'.

.IP
\fBinstallonlypkgs \fR
List of package provides that should only ever be installed, never updated.
Kernels in particular fall into this category. Defaults to kernel,
kernel-bigmem, kernel-enterprise, kernel-smp, kernel-modules, kernel-debug, 
kernel-unsupported, kernel-source, kernel-devel, kernel-PAE, kernel-PAE-debug.

Note that because these are provides, and not just package names, kernel-devel
will also apply to kernel-debug-devel, etc.

.IP
\fBinstallonly_limit \fR
Number of packages listed in installonlypkgs to keep installed at the same
time. Setting to 0 disables this feature. Default is '0'. Note that this
functionality used to be in the "installonlyn" plugin, where this option was
altered via tokeep.
Note that as of version 3.2.24, yum will now look in the yumdb for a installonly
attribute on installed packages. If that attribute is "keep", then they will
never be removed.

.IP
\fBkernelpkgnames \fR
List of package names that are kernels. This is really only here for the
updating of kernel packages and should be removed out in the yum 2.1 series.

.IP
\fBexactarchlist\fR
List of packages that should never change archs in an update.
That means, if a package has a newer version available which is for a different
compatible arch, yum will not consider that version an update if the package
name is in this list.
For example, on x86_64, foo-1.x86_64 won't be updated to foo-2.i686 if foo is
in this list.
Kernels in particular fall into this category.
Shell globs using wildcards (eg. * and ?) are allowed.
Defaults to kernel, kernel-smp, kernel-hugemem, kernel-enterprise,
kernel-bigmem, kernel-devel, kernel-PAE, kernel-PAE-debug.

.IP
\fBshowdupesfromrepos\fR
Either `0' or `1'. Set to `1' if you wish to show any duplicate packages from
any repository, from package listings like the info or list commands. Set
to `0' if you want only to see the newest packages from any repository.
Default is `0'.

.IP
\fBobsoletes \fR
This option only has affect during an \fBupdate\fR. It enables yum's
obsoletes processing logic. Useful when doing distribution level upgrades. See
also the yum \fBupgrade\fR command documentation for more details (yum(8)).
Default is `true'.
.br
Command-line option: \fB\-\-obsoletes\fP

.IP
\fBremove_leaf_only \fR
Either `0' or `1'. Used to determine yum's behaviour when a package is removed.
If \fBremove_leaf_only\fR is `0' (default) then
packages, and their deps, will be removed.  If \fBremove_leaf_only\fR is
`1' then only those packages that aren't required by another
package will be removed.

.IP
\fBrepopkgsremove_leaf_only \fR
Either `0' or `1'. Used to determine yum's behaviour when the repo-pkg remove
command is run.  If \fBrepopkgremove_leaf_only\fR is `0' (default) then
all packages in the repo. will be removed.  If \fBrepopkgremove_leaf_only\fR is
`1' then only those packages in the repo. that aren't required by another
package will be removed.
Note that this option does not override remove_leaf_only, so enabling that
option means this has almost no affect.

.IP
\fBoverwrite_groups \fR
Either `0' or `1'. Used to determine yum's behaviour if two or more
repositories offer the package groups with the same name. If
\fBoverwrite_groups\fR is `1' then the group packages of the last matching
repository will be used. If \fBoverwrite_groups\fR is `0' then the groups
from all matching repositories will be merged together as one large group.
Note that this option does not override remove_leaf_only, so enabling that
option means this has almost no affect.

.IP
\fBgroupremove_leaf_only \fR
Either `0' or `1'. Used to determine yum's behaviour when the groupremove
command is run.  If \fBgroupremove_leaf_only\fR is `0' (default) then
all packages in the group will be removed.  If \fBgroupremove_leaf_only\fR is
`1' then only those packages in the group that aren't required by another
package will be removed.

.IP
\fBenable_group_conditionals\fR
Either `0' or `1'. Determines whether yum will allow the use of conditionals
packages. Default is `1' (package conditionals are allowed).

.IP
\fBgroup_package_types\fR
List of the following: optional, default, mandatory. Tells yum which type
of packages in groups will be installed when 'groupinstall' is called. 
Default is: default, mandatory

.IP
\fBgroup_command\fR
List of the following: simple, compat, objects. Tells yum what to do for
group install/upgrade/remove commands.

Simple acts like you did yum group cmd $(repoquery --group --list group), so
it is very easy to reason about what will happen. Alas. this is often not what
people want to happen.

Compat. works much like simple, except that when you run "group upgrade" it
actually runs "group install" (this means that you get any new packages added
to the group, but you also get packages added that were there before and you
didn't want).

Objects makes groups act like a real object, separate from the packages they
contain. Yum keeps track of the groups you have installed, so "group upgrade"
will install new packages for the group but not install old ones. It also knows
about group members that are installed but weren't installed as part of the
group, and won't remove those on "group remove".
Running "yum upgrade" will also run "yum group upgrade" (thus. adding new
packages for all groups).

Default is: compat

.IP
\fBupgrade_group_objects_upgrade\fR
Either `0' or `1'. Set this to `0' to disable the automatic running of
"group upgrade" when running the "upgrade" command, and group_command is set to
"objects". Default is `1' (perform the operation).

.IP
\fBautocheck_running_kernel\fR
Either `0' or `1'. Set this to `0' to disable the automatic checking of the
running kernel against updateinfo ("yum updateinfo check-running-kernel"), in
the "check-update" and "updateinfo summary" commands.
Default is `1' (perform the check).

.IP
\fBinstallroot \fR
Specifies an alternative installroot, relative to which all packages will be
installed. 
.br
Command-line option: \fB\-\-installroot\fP

.IP
\fBconfig_file_path \fR
Specifies the path to main the configuration file.
Default is /etc/yum/yum.conf.

.IP
\fBcheck_config_file_age \fR
Either `0' or `1'. Specifies whether yum should auto metadata expire repos. 
that are older than any of the configuration files that led to them (usually 
the yum.conf file and the foo.repo file).
Default is `1' (perform the check).

.IP
\fBdistroverpkg\fR
The package used by yum to determine the "version" of the distribution, this
sets $releasever for use in config. files. This
can be any installed package. Default is `system-release(releasever)',
`redhat-release'. Yum will now look at the version provided by the provide,
and if that is non-empty then will use the full V(-R), otherwise it uses the
version of the package.
 You can see what provides this manually by using: 
"yum whatprovides 'system-release(releasever)' redhat-release" and you can see
what $releasever is most easily by using: "yum version".

.IP
\fBdiskspacecheck\fR
Either `0' or `1'. Set this to `0' to disable the checking for sufficient
diskspace and inodes before a RPM transaction is run. Default is `1'
(perform the check).

.IP
\fBtsflags\fR
Comma or space separated list of transaction flags to pass to the rpm
transaction set. These include 'noscripts', 'notriggers', 'nodocs', 'test', 'justdb' and 'nocontexts'. 'repackage' is also available but that does nothing
with newer rpm versions.
You can set all/any of them. However, if you don't know what these do in the
context of an rpm transaction set you're best leaving it alone. Default is
an empty list.
Also see the "yum fs" command, for excluding docs.

.IP
\fBoverride_install_langs\fR
This is a way to override rpm's _install_langs macro. without having to change
it within rpm's macro file.
Default is nothing (so does nothing).
Also see the "yum fs" command.

.IP
\fBrecent\fR
Number of days back to look for `recent' packages added to a repository.
Used by the \fBlist recent\fR command. Default is `7'.

.IP
\fBretries\fR
Set the number of times any attempt to retrieve a file should retry before 
returning an error. Setting this to `0' makes yum try forever. Default is `10'.

.IP
\fBkeepalive \fR
Either `0' or `1'. Set whether HTTP keepalive should be used for HTTP/1.1
servers that support it. This can improve transfer speeds by using one
connection when downloading multiple files from a repository. Default is `1'.

.IP
\fBtimeout \fR
Number of seconds to wait for a connection before timing out. Defaults to
30 seconds. This may be too short of a time for extremely overloaded
sites.

.IP
\fBhttp_caching\fR
Determines how upstream HTTP caches are instructed to handle any HTTP downloads
that Yum does. This option can take the following values:

`all' means that all HTTP downloads should be cached.

`packages' means that only RPM package downloads should be cached (but not
repository metadata downloads).

`lazy:packages' means that act like `packages' unless package verification
fails (e.g. the package download doesn't match the expected checksum), in which
case try re-downloading the package as if `none' was set.  This value is a good
compromise if you want to avoid issues caused by stale proxy cache after remote
RPMs change contents without changing filenames (e.g. are pushed unsigned and
later signed) but still want the benefits of package caching whenever possible.

`none' means that no HTTP downloads should be cached.

The default is `all'. This is recommended unless you are experiencing caching
related issues. Try to at least use `packages' to minimize load on repository
servers.

.IP
\fBthrottle \fR
Enable bandwidth throttling for downloads. This option can be expressed as a
absolute data rate in bytes/sec. An SI prefix (k, M or G) may be appended to the
bandwidth value (eg. `5.5k' is 5.5 kilobytes/sec, `2M' is 2 Megabytes/sec).

Alternatively, this option can specify the percentage of total bandwidth to use 
(eg. `60%'). In this case the \fBbandwidth\fR option should be used to specify
the maximum available bandwidth.

Set to `0' to disable bandwidth throttling. This is the default.

Note that when multiple downloads run simultaneously the total bandwidth might
exceed the throttle limit. You may want to also set max_connections=1 or scale
your throttle option down accordingly.

.IP
\fBminrate \fR
This sets the low speed threshold in bytes per second. If the server
is sending data slower than this for at least `timeout' seconds, Yum
aborts the connection. The default is `1000'.

.IP
\fBbandwidth \fR
Use to specify the maximum available network bandwidth in bytes/second.  Used
with the \fBthrottle\fR option (above). If \fBthrottle\fR is a percentage and
\fBbandwidth\fR is `0' then bandwidth throttling will be disabled. If
\fBthrottle\fR is expressed as a data rate (bytes/sec) then this option is
ignored. Default is `0' (no bandwidth throttling). 

.IP
\fBip_resolve \fR
Determines how yum resolves host names.

`4' or `IPv4': resolve to IPv4 addresses only.

`6' or `IPv6': resolve to IPv6 addresses only.

.IP
\fBmax_connections \fR

The maximum number of simultaneous connections.  This overrides the urlgrabber
default of 5 connections.  Note that there are also implicit per-mirror limits
and the downloader honors these too.

.IP
\fBftp_disable_epsv \fR
This options disables Extended Passive Mode (the EPSV command) which does not
work correctly on some buggy ftp servers. Default is `0' (EPSV enabled).

.IP
\fBdeltarpm\fR

When non-zero, delta-RPM files are used if available.  The value specifies
the maximum number of "applydeltarpm" processes Yum will spawn, if the value
is negative then yum works out how many cores you have and multiplies that
by the value (cores=2, deltarpm=-2; 4 processes). (2 by default).

Note that the "applydeltarpm" process uses a significant amount of disk IO,
so running too many instances can significantly slow down all disk IO including
the downloads that yum is doing (thus. a too high value can make everything
slower).

.IP
\fBdeltarpm_percentage\fR
When the relative size of delta vs pkg is larger than this, delta is not used.
Default value is 75 (Deltas must be at least 25% smaller than the pkg).
Use `0' to turn off delta rpm processing. Local repositories (with file://
baseurl) have delta rpms turned off by default.

.IP
\fBdeltarpm_metadata_percentage\fR
When the relative size of deltarpm metadata vs pkgs is larger than this,
deltarpm metadata is not downloaded from the repo.
Default value is 100 (Deltarpm metadata must be smaller than the packages from
the repo). Note that you can give values over 100, so 200 means that the
metadata is required to be half the size of the packages.
Use `0' to turn off this check, and always download metadata.

.IP
\fBsslcacert \fR
Path to the directory containing the databases of the certificate authorities
yum should use to verify SSL certificates. Defaults to none - uses system
default

.IP
\fBsslverify \fR
Boolean - should yum verify SSL certificates/hosts at all. Defaults to True.

Note that the plugin yum-rhn-plugin will force this value to true, and may
alter other ssl settings (like hostname checking), even if it the machine
is not registered.

.IP
\fBsslclientcert \fR
Path to the SSL client certificate yum should use to connect to repos/remote sites
Defaults to none.

Note that if you are using curl compiled against NSS (default in Fedora/RHEL),
curl treats sslclientcert values with the same basename as _identical_. This
version of yum will check that this isn't true and output an error when the
repositories "foo" and "bar" violate this, like so:

sslclientcert basename shared between foo and bar

.IP
\fBsslclientkey \fR
Path to the SSL client key yum should use to connect to repos/remote sites
Defaults to none.

.IP
\fBssl_check_cert_permissions \fR
Boolean - Whether yum should check the permissions on the paths for the
certificates on the repository (both remote and local). If we can't read any of
the files then yum will force skip_if_unavailable to be true.
This is most useful for non-root processes which use yum on repos. that have
client cert files which are readable only by root.
Defaults to True.

.IP
\fBhistory_record \fR
Boolean - should yum record history entries for transactions. This takes some
disk space, and some extra time in the transactions. But it allows how to know a
lot of information about what has happened before, and display it to the user
with the history info/list/summary commands. yum also provides the
history undo/redo commands. Defaults to True.

Note that if history is recorded, yum uses that information to see if any
modifications to the rpmdb have been done outside of yum. These are always bad,
from yum's point of view, and so yum will issue a warning and automatically
run some of "yum check" to try and find some of the worst problems altering
the rpmdb might have caused.
.IP
This means that turning this option off will stop yum from being able to
detect when the rpmdb has changed and thus. it will never warn you or
automatically run "yum check". The problems will likely still be there, and
yumdb etc. will still be wrong but yum will not warn you about it.

.IP
\fBhistory_record_packages \fR
This is a list of package names that should be recorded as having helped the
transaction. yum plugins have an API to add themselves to this, so it should not
normally be necessary to add packages here. Not that this is also used for the
packages to look for in \-\-version. Defaults to rpm, yum, yum-metadata-parser.

.IP
\fBhistory_list_view \fR
Which column of information to display in the "yum history list" command. There
are currently three options: users, cmds (or commands), auto.

Older versions of yum acted like "users", which always outputs the user who
initiated the yum transaction. You can now specify "commands" which will instead
always output the command line of the transaction. You can also specify
"single-user-commands" which will display the users if there are more than one,
otherwise it will display the command line.

You can also specify "default" which currently selects "single-user-commands".

.IP
\fBcommands\fR
List of functional commands to run if no functional commands are specified
on the command line (eg. "update foo bar baz quux").  None of the short options
(eg. \-y, \-e, \-d) are accepted for this option.

.IP
\fBsyslog_ident \fR
Identification (program name) for syslog messages.

.IP
\fBsyslog_facility \fR
Facility name for syslog messages, see syslog(3).  Default is `LOG_USER'.

.IP
\fBsyslog_device \fR
Where to log syslog messages. Can be a local device (path) or a host:port
string to use a remote syslog.  If empty or points to a nonexistent device,
syslog logging is disabled.  Default is `/dev/log'.

.IP
\fBproxy \fR
URL to the proxy server that yum should use.  Set this to `libproxy'
to enable proxy auto configuration via libproxy.  Defaults to direct
connection.

.IP
\fBproxy_username \fR
username to use for proxy

.IP
\fBproxy_password \fR
password for this proxy

.IP
\fBusername \fR
username to use for basic authentication to a repo or really any url.

.IP
\fBpassword \fR
password to use with the username for basic authentication.

.IP
\fBplugins \fR
Either `0' or `1'. Global switch to enable or disable yum plugins. Default is
`0' (plugins disabled). See the \fBPLUGINS\fR section of the \fByum(8)\fR man
for more information on installing yum plugins.

.IP
\fBpluginpath \fR
A list of directories where yum should look for plugin modules. Default is
`/usr/share/yum-plugins' and `/usr/lib/yum-plugins'.

.IP
\fBpluginconfpath \fR
A list of directories where yum should look for plugin configuration files.
Default is `/etc/yum/pluginconf.d'.

.IP
\fBmetadata_expire \fR
Time (in seconds) after which the metadata will expire. So that if the
current metadata downloaded is less than this many seconds old then yum will
not update the metadata against the repository.  If you find that
yum is not downloading information on updates as often as you would like
lower the value of this option. You can also change from the default of using
seconds to using days, hours or minutes by appending a d, h or m respectively.
The default is 6 hours, to compliment yum-updatesd running once an hour.
It's also possible to use the word "never", meaning that the metadata will
never expire. Note that when using a metalink file the metalink must always
be newer than the metadata for the repository, due to the validation, so this
timeout also applies to the metalink file.
Also note that "never" does not override "yum clean expire-cache"

.IP
\fBmetadata_expire_filter \fR
Filter the metadata_expire time, allowing a trade of speed for accuracy if
a command doesn't require it. Each yum command can specify that it requires a
certain level of timeliness quality from the remote repos. from "I'm about to
install/upgrade, so this better be current" to "Anything that's available
is good enough".

`never' - Nothing is filtered, always obey metadata_expire.

`read-only:past' - Commands that only care about past information
are filtered from metadata expiring.
Eg. yum history info (if history needs to lookup anything about a previous
transaction, then by definition the remote package was available in the past).

`read-only:present' - Commands that are balanced between past and future.
This is the default.
Eg. yum list yum

`read-only:future' - Commands that are likely to result in running other
commands which will require the latest metadata. Eg. yum check-update

Note that this option requires that all the enabled repositories be roughly the
same freshness (meaning the cache age difference from one another is at most 5
days).  Failing that, metadata_expire will always be obeyed, just like with
`never'.

Also note that this option does not override "yum clean expire-cache".

.IP
\fBmirrorlist_expire \fR
Time (in seconds) after which the mirrorlist locally cached will expire. 
If the current mirrorlist is less than this many seconds old then yum
will not download another copy of the mirrorlist, it has the same extra format
as metadata_expire.
If you find that yum is not downloading the mirrorlists as 
often as you would like lower the value of this option.

.IP
\fBmdpolicy \fR
You can select from different metadata download policies depending on how much
data you want to download with the main repository metadata index. The
advantages of downloading more metadata with the index is that you can't get
into situations where you need to use that metadata later and the versions
available aren't compatible (or the user lacks privileges) and that if the
metadata is corrupt in any way yum will revert to the previous metadata.

`instant' - Just download the new metadata index, this is roughly what yum
always did, however it now does some checking on the index and reverts if
it classifies it as bad.

`group:primary' - Download the primary metadata with the index. This contains
most of the package information and so is almost always required anyway.

`group:small' - With the primary also download the updateinfo metadata, groups,
and pkgtags. This is required for yum-security operations and it also used in
the graphical clients. This file also tends to be significantly smaller than
most others. This is the default.

`group:main' - With the primary and updateinfo download the filelists metadata
and the group metadata. The filelists data is required for operations like
"yum install /bin/bash", and also some dependency resolutions require it. The
group data is used in some graphical clients and for group operations like
"yum grouplist Base".

`group:all' - Download all metadata listed in the index, currently the only one
not listed above is the other metadata, which contains the changelog information
which is used by yum-changelog. This is what "yum makecache" uses.

.IP
\fBmddownloadpolicy \fR
You can select which kinds of repodata you would prefer yum to download:

`sqlite' - Download the .sqlite files, if available. This is currently slightly
faster, once they are downloaded. However these files tend to be bigger, and
thus. take longer to download.

`xml' - Download the .XML files, which yum will do anyway as a fallback on
the other options. These files tend to be smaller, but they require
parsing/converting locally after download and some aditional checks are
performed on them each time they are used.

.IP
\fBmultilib_policy \fR
Can be set to 'all' or 'best'. All means install all possible arches for any package you 
want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, 
if it is available. Best means install the best arch for this platform, only.

.IP
\fBrequires_policy \fR
Can be set to 'strong', 'weak' or info'. Strong means install just the needed
requirements. Weak means also install any weak requirements. Info means install
all requirements. This only happens on install/reinstall, upgrades/downgrades
do not consult this at all.
Note that yum will try to just drop weak and info requirements on errors.

.IP
\fBbugtracker_url \fR
URL where bugs should be filed for yum. Configurable for local versions or distro-specific
bugtrackers.

.IP
\fBcolor \fR
Whether to display colorized output automatically, depending on the output
terminal, can be changed to always (using ANSI codes) or never.
Default is `auto'.
Possible values are: auto, never, always.
Command-line option: \fB\-\-color\fP

.IP
\fBcolor_list_installed_older \fR
The colorization/highlighting for packages in list/info installed which are
older than the latest available package with the same name and arch.
Default is `bold'.
Possible values are a comma separated list containing: bold, blink, dim,
reverse, underline, fg:black, fg:red, fg:green, fg:yellow, fg:blue, fg:magenta,
fg:cyan, fg:white, bg:black, bg:red, bg:green, bg:yellow, bg:blue, bg:magenta,
bg:cyan, bg:white.

.IP
\fBcolor_list_installed_newer \fR
The colorization/highlighting for packages in list/info installed which are
newer than the latest available package with the same name and arch.
Default is `bold,yellow'.
See color_list_installed_older for possible values.

.IP
\fBcolor_list_installed_reinstall \fR
The colorization/highlighting for packages in list/info installed which is
the same version as the latest available package with the same name and arch.
Default is `normal'.
See color_list_installed_older for possible values.

.IP
\fBcolor_list_installed_running_kernel \fR
The colorization/highlighting for kernel packages in list/info installed which
is the same version as the running kernel.
Default is `bold,underline.
See color_list_installed_older for possible values.

.IP
\fBcolor_list_installed_extra \fR
The colorization/highlighting for packages in list/info installed which has
no available package with the same name and arch.
Default is `bold,red'.
See color_list_installed_older for possible values.

.IP
\fBcolor_list_available_upgrade \fR
The colorization/highlighting for packages in list/info available which is
an upgrade for the latest installed package with the same name and arch.
Default is `bold,blue'.
See color_list_installed_older for possible values.

.IP
\fBcolor_list_available_downgrade \fR
The colorization/highlighting for packages in list/info available which is
a downgrade for the latest installed package with the same name and arch.
Default is `dim,cyan'.
See color_list_installed_older for possible values.

.IP
\fBcolor_list_available_install \fR
The colorization/highlighting for packages in list/info available which has
no installed package with the same name and arch.
Default is `normal'.
See color_list_installed_older for possible values.

.IP
\fBcolor_list_available_reinstall \fR
The colorization/highlighting for packages in list/info available which is
the same version as the installed package with the same name and arch.
Default is `bold,underline,green.
See color_list_installed_older for possible values.

.IP
\fBcolor_list_available_running_kernel \fR
The colorization/highlighting for kernel packages in list/info available which
is the same version as the running kernel.
Default is `bold,underline.
See color_list_installed_older for possible values.

.IP
\fBcolor_search_match \fR
The colorization/highlighting for text matches in search.
Default is `bold'.
See color_list_installed_older for possible values.

.IP
\fBcolor_update_installed \fR
The colorization/highlighting for packages in the "updates list" which are
installed. The updates list is what is printed when you run "yum update",
"yum list updates", "yum list obsoletes" and "yum check-update".
Default is `normal'.
See color_list_installed_older for possible values.

.IP
\fBcolor_update_local \fR
The colorization/highlighting for packages in the "updates list" which are
already downloaded. The updates list is what is printed when you run
"yum update", "yum list updates", "yum list obsoletes" and "yum check-update".
Default is `bold'.
See color_list_installed_older for possible values.

.IP
\fBcolor_update_remote \fR
The colorization/highlighting for packages in the "updates list" which need to
be downloaded. The updates list is what is printed when you run "yum update",
"yum list updates", "yum list obsoletes" and "yum check-update".
Default is `normal'.
See color_list_installed_older for possible values.

.IP
\fBui_repoid_vars \fR
When a repository id is displayed, append these yum variables to the string
if they are used in the baseurl/etc. Variables are appended in the order
listed (and found).
Default is 'releasever basearch'.

.IP
\fBclean_requirements_on_remove \fR
When removing packages (by removal, update or obsoletion) go through each
package's dependencies. If any of them are no longer required by any other 
package then also mark them to be removed.
Boolean (1, 0, True, False, yes, no) Defaults to False

.IP
\fBupgrade_requirements_on_install \fR
When installing/reinstalling/upgrading packages go through each package's
installed dependencies and check for an update.
Boolean (1, 0, True, False, yes,no) Defaults to False

.IP
\fBrecheck_installed_requires \fR
When upgrading a package do we recheck any requirements that existed in the old
package. Turning this on shouldn't do anything but slow yum depsolving down,
however using rpm --nodeps etc. can break the rpmdb and then this will help.
Boolean (1, 0, True, False, yes,no) Defaults to False

.IP
\fBreset_nice \fR
If set to true then yum will try to reset the nice value to zero, before
running an rpm transaction. Defaults to True.

\fBexit_on_lock\fR
Should the yum client exit immediately when something else has the lock.
Boolean (1, 0, True, False, yes, no) Defaults to False

.IP
\fBloadts_ignoremissing\fR
Should the load-ts command ignore packages that are missing. This includes
packages in the TS to be removed, which aren't installed, and packages in the
TS to be added, which aren't available.
If this is set to true, and an rpm is missing then loadts_ignorenewrpm is
automatically set to true.
Boolean (1, 0, True, False, yes, no) Defaults to False

.IP
\fBloadts_ignorerpm\fR
Should the load-ts command ignore the rpmdb version (yum version nogroups) or
abort if there is a mismatch between the TS file and the current machine.
If this is set to true, then loadts_ignorenewrpm is automatically set to true.
Boolean (1, 0, True, False, yes, no) Defaults to False

.IP
\fBloadts_ignorenewrpm\fR
Should the load-ts command ignore the future rpmdb version or
abort if there is a mismatch between the TS file and what will happen on the
current machine.
Note that if loadts_ignorerpm is True, this option does nothing.
Boolean (1, 0, True, False, yes, no) Defaults to False

.IP
\fBautosavets\fR
Should yum automatically save a transaction to a file when the transaction is
solved but not run.
Boolean (1, 0, True, False, yes, no) Defaults to True

.IP
\fBfssnap_automatic_pre\fR
Should yum try to automatically create a snapshot before it runs a transaction.
Boolean (1, 0, True, False, yes, no) Defaults to False

.IP
\fBfssnap_automatic_post\fR
Should yum try to automatically create a snapshot after it runs a transaction.
Boolean (1, 0, True, False, yes, no) Defaults to False

.IP
\fBfssnap_automatic_keep\fR
How many old snapshots should yum keep when trying to automatically create a 
new snapshot. Setting to 0 disables this feature. Default is '1'.

.IP
\fBfssnap_percentage\fR
The size of new snaphosts, expressed as a percentage of the old origin device. 
Any number between 1 and 100. Default is '100'.

.IP
\fBfssnap_devices\fR
The origin LVM devices to use for snapshots. Wildcards and negation are allowed,
first match (positive or negative) wins.
Default is: !*/swap !*/lv_swap glob:/etc/yum/fssnap.d/*.conf

.IP
\fBfssnap_abort_on_errors\fR
When fssnap_automatic_pre or fssnap_automatic_post is enabled, it's possible to specify which
fssnap errors should make the transaction fail. The default is `any'.

`broken-setup' - Abort current transaction if snapshot support is unavailable because
lvm is missing or broken.

`snapshot-failure' - Abort current transaction if creating a snapshot fails (e.g. there is not enough
free space to make a snapshot).

`any' - Abort current transaction if any of the above occurs.

`none' - Never abort a transaction in case of errors.

.IP
\fBdepsolve_loop_limit\fR
Set the number of times any attempt to depsolve before we just give up. This
shouldn't be needed as yum should always solve or fail, however it has been
observed that it can loop forever with very large system upgrades. Setting
this to `0' (or "<forever>") makes yum try forever. Default is `100'.

.IP
\fBusr_w_check\fR
Either `0' or `1'. Set this to `0' to disable the checking for writability on
/usr in the installroot (when going into the depsolving stage). Default is `1'
(perform the check).

.IP
\fBskip_missing_names_on_install\fR
If set to False, 'yum install' will fail if it can't find any of the provided
names (package, group, rpm file). Boolean (1, 0, True, False, yes, no). Defaults to True.

.IP
\fBskip_missing_names_on_update\fR
If set to False, 'yum update' will fail if it can't find any of the provided
names (package, group, rpm file). It will also fail if the provided name is a package
which is available, but not installed. Boolean (1, 0, True, False, yes, no). Defaults to True.

.IP
\fBshell_exit_status\fR
Determines the exit status that should be returned by `yum shell' when it
terminates after reading the `exit' command or EOF.
Possible values are: 0, ?.
If ? is set, the exit status is that of the last command executed before `exit'
(bash-like behavior).
Defaults to 0.

.SH "[repository] OPTIONS"
.LP 
The repository section(s) take the following form:
.IP
\fBExample\fP:
[repositoryid] 
.br 
name=Some name for this repository
.br 
baseurl=url://path/to/repository/ 
.br 

.IP
\fBrepositoryid\fR
Must be a unique name for each repository, one word.

.IP
\fBname\fR
A human readable string describing the repository.

.IP
\fBbaseurl\fR
Must be a URL to the directory where the yum repository's `repodata' directory
lives. Can be an http://, ftp:// or file:// URL.

You can specify multiple URLs in one baseurl statement. The best way to do this
is like this:
.br
[repositoryid]
.br
name=Some name for this repository
.br
baseurl=url://server1/path/to/repository/
.br
        url://server2/path/to/repository/
.br
        url://server3/path/to/repository/
.br

The URLs listed are considered different locations (mirrors) of the same
repository.
That means, if one URL fails, another one is tried, and so on.
The order in which the URLs are tried is determined by the \fBfailovermethod\fR
option.

If you list more than one baseurl= statement in a repository you will find
yum will ignore the earlier ones and probably act bizarrely. Don't do this,
you've been warned.

You can use HTTP basic auth by prepending "user:password@" to the server
name in the baseurl line.  For example: "baseurl=http://user:passwd@example.com/".

.IP
\fBmetalink\fR
Specifies a URL to a metalink file for the repomd.xml, a list of mirrors for
the entire repository are generated by converting the mirrors for the
repomd.xml file to a baseurl. The metalink file also contains the latest
timestamp from the data in the repomd.xml, the length of the repomd.xml and
checksum data. This data is checked against any downloaded repomd.xml file
and all of the information from the metalink file must match. This can be used
instead of or with the \fBbaseurl\fR option. Substitution variables, described
below, can be used with this option. This option disables the mirrorlist option.
As a special hack is the mirrorlist URL contains the word "metalink" then the
value of mirrorlist is copied to metalink (if metalink is not set).

.IP
\fBmirrorlist\fR
Specifies a URL to a file containing a list of baseurls. This can be used
instead of or with the \fBbaseurl\fR option. Substitution variables, described
below, can be used with this option. 
As a special hack is the mirrorlist URL contains the word "metalink" then the
value of mirrorlist is copied to metalink (if metalink is not set).


.IP
\fBenabled\fR
Either `1' or `0'. This tells yum whether or not use this repository.

.IP
\fBkeepcache\fR
Overrides the \fBkeepcache\fR option from the [main] section for this repository.

.IP
\fBgpgcheck\fR
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on the packages gotten from this repository.

.IP
\fBrepo_gpgcheck\fR
Either `1' or `0'. This tells yum whether or not it should perform a GPG
signature check on the repodata from this repository.

.IP
\fBgpgkey\fR
A URL pointing to the ASCII-armored GPG key file for the repository. This
option is used if yum needs a public key to verify a package and the required
key hasn't been imported into the RPM database. If this option is set, yum will
automatically import the key from the specified URL. You will be prompted before
the key is installed unless the \fBassumeyes\fR option is set.

Multiple URLs may be specified here in the same manner as the \fBbaseurl\fR
option (above). If a GPG key is required to install a package from a
repository, all keys specified for that repository will be installed.

.IP
\fBgpgcakey\fR
A URL pointing to the ASCII-armored CA key file for the repository. This is a normal 
gpg public key - but this key will be used to validate detached signatures of all
other keys. The idea is you are asked to confirm import for this key. After that any other 
gpg key needed for package or repository verification, if it has a detached signature which matches this
key will be automatically imported without user confirmation.

.IP
\fBexclude\fR
Same as the [main] \fBexclude\fR option but only for this repository.
Substitution variables, described below, are honored here.

Can be disabled using --disableexcludes.

.IP
\fBincludepkgs\fR
Inverse of exclude, yum will exclude any package in the repo. that doesn't
match this list. This works in conjunction with exclude and doesn't override it,
so if you exclude=*.i386 and includepkgs=python* then only packages starting
with python that do not have an i386 arch. will be seen by yum in this repo.

Substitution variables, described below, are honored here.

Can be disabled using --disableexcludes.

.IP
\fBenablegroups\fR
Either `0' or `1'. Determines whether yum will allow the use of package groups
for this repository. Default is `1' (package groups are allowed).

.IP
\fBfailovermethod\fR
Either `roundrobin' or `priority'.

`roundrobin' randomly selects a URL out of
the list of URLs to start with and proceeds through each of them as it
encounters a failure contacting the host. 

`priority' starts from the first baseurl listed and reads through them
sequentially.

\fBfailovermethod\fR defaults to `roundrobin' if not specified.

.IP
\fBkeepalive\fR
Either `1' or `0'. This tells yum whether or not HTTP/1.1 keepalive should be
used with this repository. See the global option in the [main] section above
for more information.

.IP
\fBtimeout\fR
Overrides the \fBtimeout\fR option from the [main] section for this repository.

.IP
\fBhttp_caching\fR
Overrides the \fBhttp_caching\fR option from the [main] section for this repository.

.IP
\fBretries\fR
Overrides the \fBretries\fR option from the [main] section for this repository.

.IP
\fBthrottle\fR
Overrides the \fBthrottle\fR option from the [main] section for this
repository.

.IP
\fBbandwidth\fR
Overrides the \fBbandwidth\fR option from the [main] section for this
repository.

.IP
\fBip_resolve \fR
Overrides the \fBip_resolve\fR option from the [main] section for this
repository.

.IP
\fBftp_disable_epsv\fR
Overrides the \fBftp_disable_epsv\fR option from the [main] section
for this repository.

.IP
\fBdeltarpm_percentage\fR
Overrides the \fBdeltarpm_percentage\fR option from the [main] section
for this repository.

.IP
\fBdeltarpm_metadata_percentage\fR
Overrides the \fBdeltarpm_metadata_percentage\fR option from the [main] section
for this repository.

.IP
\fBsslcacert \fR
Overrides the \fBsslcacert\fR option from the [main] section for this
repository.

.IP
\fBsslverify \fR
Overrides the \fBsslverify\fR option from the [main] section for this
repository.

.IP
\fBsslclientcert \fR
Overrides the \fBsslclientcert\fR option from the [main] section for this
repository.

.IP
\fBsslclientkey \fR
Overrides the \fBsslclientkey\fR option from the [main] section for this
repository.

.IP
\fBssl_check_cert_permissions \fR
Overrides the \fBssl_check_cert_permissions\fR option from the [main] section
for this repository.

.IP
\fBmetadata_expire \fR
Overrides the \fBmetadata_expire\fR option from the [main] section for this
repository.

.IP
\fBmetadata_expire_filter \fR
Overrides the \fBmetadata_expire_filter\fR option from the [main] section for
this repository.

.IP
\fBmirrorlist_expire \fR
Overrides the \fBmirrorlist_expire\fR option from the [main] section for this
repository.

.IP
\fBproxy \fR
URL to the proxy server for this repository. Set to '_none_' to disable the 
global proxy setting for this repository. If this is unset it 
inherits it from the global setting

.IP
\fBproxy_username \fR
username to use for proxy.
If this is unset it inherits it from the global setting

.IP
\fBproxy_password \fR
password for this proxy.
If this is unset it inherits it from the global setting


.IP
\fBusername \fR
username to use for basic authentication to a repo or really any url.
If this is unset it inherits it from the global setting

.IP
\fBpassword \fR
password to use with the username for basic authentication.
If this is unset it inherits it from the global setting

.IP
\fBcost \fR
relative cost of accessing this repository. Useful for weighing one repo's packages
as greater/less than any other. defaults to 1000

.IP
\fBskip_if_unavailable \fR
If set to True yum will continue running if this repository cannot be 
contacted for any reason. This should be set carefully as all repos are consulted
for any given command. Defaults to False.

.IP
\fBasync \fR
If set to True Yum will download packages and metadata from this repo in
parallel, if possible.  Defaults to True.

.IP
\fBui_repoid_vars \fR
Overrides the \fBui_repoid_vars\fR option from the [main] section for this
repository.

.IP
\fBcompare_providers_priority \fR
During depsolving, when choosing the best provider among several, yum will respect
the priority of each provider's repository (note that there are other factors
which yum considers, which may overweigh the repository priority). The value is
an integer from 1 to 99, 1 being the most preferred repository, and 99 being
the least preferred one. By default all repositories have the priority of 80.

.SH "URL INCLUDE SYNTAX"
.LP
The inclusion of external configuration files is supported for /etc/yum/yum.conf
and the .repo files in the /etc/yum/repos.d directory. To include a URL, use a
line of the following format:

include=url://to/some/location

The configuration file will be inserted at the position of the "include=" line.
Included files may contain further include lines. Yum will abort with an error
if an inclusion loop is detected.

.SH "GLOB: FOR LIST OPTIONS"
.LP
Any of the configurations options which are a list of items can be specfied
using the glob syntax: \fBglob:/etc/path/somewhere.d/*.conf\fR. This
will read in all files matching that glob and include all lines in each file
(excluding comments and blank lines) as items in the list.
.LP

.SH "VARIABLES"
.LP
There are a number of variables you can use to ease maintenance of yum's
configuration files. They are available in the values of several options
including \fBname\fR, \fBbaseurl\fR and \fBcommands\fB.
.LP

.IP
\fB$releasever\fR
This will be replaced with the value of the version of the package listed
in \fBdistroverpkg\fR. This defaults to the version of `redhat-release'
package.

.IP
\fB$arch\fR
This will be replaced with the architecture or your system
as detected by yum.

.IP
\fB$basearch\fR
This will be replaced with your base architecture in yum. For example, if
your $arch is i686 your $basearch will be i386.

.IP
\fB$uuid\fR
This will be replaced with a unique but persistent uuid for this machine. 
The value that is first generated will be stored in /var/lib/yum/uuid and
reused until this file is deleted.

.IP
\fB$YUM0-$YUM9\fR
These will be replaced with the value of the shell environment variable of
the same name. If the shell environment variable does not exist then the
configuration file variable will not be replaced.

.LP
When variable names are parsed in a string, all alphanumeric characters and
underscores immediately following a $ sign are interpreted as part of a name.
If a variable is undefined, it will not be replaced.
For example, the strings $releasever-foo or $releasever/foo will be expanded
with the $releasever value accordingly, whereas $releaseverfoo or
$releasever_foo will not be expanded.

As of 3.2.28, any properly named file in /etc/yum/vars is turned into
a variable named after the filename (or overrides any of the above variables).
Filenames may contain only alphanumeric characters and underscores
and be in lowercase.

Note that no warnings/errors are given if the files are unreadable, so creating
files that only root can read may be confusing for users.

Also note that only the first line will be read and all new line 
characters are removed, as a convenience. However, no other checking is 
performed on the data. This means it is possible to have bad character 
data in any value.

.SH "FILES"
.nf
/etc/yum/yum.conf
/etc/yum/repos.d/
/etc/yum/pluginconf.d/
/etc/yum/protected.d
/etc/yum/vars

.SH "SEE ALSO"
.LP 
yum(8)

